<?php

namespace Our;

/**
 * api模块控制器抽象类
 *
 * @package Our
 * @author iceup <sjlinyu@qq.com>
 */
abstract class Controller_AbstractApi extends \Our\Controller_Abstract {

    /**
     * api控制器直接输出json格式数据，不需要渲染视图
     */
    public function init() {
        \Yaf\Dispatcher::getInstance()->disableView();
    }

    /**
     * 对 JSON 格式的字符串进行解码
     * @param $json 待解码的 json string 格式的字符串
     * @param bool $assoc 当该参数为 TRUE 时，将返回 array 而非 object
     * @return mixed
     */
    public function jsonDecode($json,$assoc=true){
        return \Zend\Json\Json::decode($json,$assoc);
    }

    /**
     * 对变量进行 JSON 编码 只能接受 UTF-8 编码的数据
     * @param $value 除了resource 类型之外，可以为任何数据类型
     * @return string
     */
    public function jsonEncode($value){
        return \Zend\Json\Json::encode($value);
    }

    /**
     * 返回json数据之前的封装
     * @param $msg 返回信息值
     * @param int $error 是否有误
     * @return array
     */
    public function apiData($msg,$error=0){
        return array('error'=>$error,'msg'=>$msg);
    }
}
